\section{Conclusions}
Many research proposals have detailed the challenges involved with
directory-based protocols and cite directory storage overheads as
being a key challenge. In this paper, we presented \sys{}, a coherence
directory that requires minimal storage (83KB at 16 cores) and can scale
at least up to 512 cores (3MB storage required). \sys\ achieves this by
combining two complementary techniques that compress both the tags
and the sharing patterns in the directory. \sys\ adopts tagless
directory's approach~\cite{zebchuk-micro-2009} of compressing the
tags using bloom filters to summarize the information in each
set. \sys\ further compresses the sharer bit vectors in the bloom
filters based on the observation that due to the regular nature of
programs many cache blocks exhibit the same sharing pattern i.e.,
there are only a few sharing patterns and they are replicated in many bloom
filters. \sys\ maintains a separate table that seeks to hold only the
unique patterns that appear in the application and multiple bloom
filters with the same pattern point to a common entry. \sys\ provides
significant benefit over the tagless's tag compression and achieves 34\%
savings in storage at 16 cores, and 78\% at 64 cores.  \sys{}'s 
storage overhead is the minimum amongst all previous coherence
directory proposals and scales better than even an idealized directory
cache from 16---512 cores. Finally, the directory storage can be tuned
based on the sharing patterns in the application. Many parallel
workloads in SPLASH2 have few sharing patterns and we find that for a
1024-core (64KB L1) accelerator architecture that targets only these
workloads, \sys{} would need only 600KB of space (less than 1\% of
total aggregate L1 space).









%ZHZ need rephrase
~



